"""
Redis配置模块
用于配置Redis客户端连接
"""
import redis
from pydantic_settings import BaseSettings
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()


class RedisSettings(BaseSettings):
    """Redis配置类"""
    # 从环境变量获取Redis配置，如果没有则使用默认值
    REDIS_HOST: str = "host.docker.internal"
    REDIS_PORT: int = 6379
    REDIS_PASSWORD: str = "myfuture"
    REDIS_DB: int = 0
    
    class Config:
        env_file = ".env"
        extra = 'allow'


# 创建Redis配置实例
settings = RedisSettings()

# 创建Redis连接池
redis_pool = redis.ConnectionPool(
    host=settings.REDIS_HOST,
    port=settings.REDIS_PORT,
    password=settings.REDIS_PASSWORD,
    db=settings.REDIS_DB,
    decode_responses=True
)


def get_redis():
    """
    获取Redis客户端的函数
    返回一个Redis客户端实例
    """
    return redis.Redis(connection_pool=redis_pool)


# 创建默认的Redis客户端实例
redis_client = get_redis()